﻿namespace MicroCloud.Audits
{
    /// <summary>
    /// 审计操作信息
    /// </summary>
    public class AuditOperationEntry
    {
        #region "属性"
        #region "获取或设置 执行的功能名"
        /// <summary>
        /// 获取或设置 执行的功能名
        /// </summary>
        public string FunctionName { get; set; }
        #endregion
        #region "获取或设置 用户编号"
        /// <summary>
        /// 获取或设置 用户编号
        /// </summary>
        public string UserId { get; set; }
        #endregion
        #region "获取或设置 访问IP"
        /// <summary>
        /// 获取或设置 访问IP
        /// </summary>
        public string Ip { get; set; }
        #endregion
        #region "获取或设置 用户代理"
        /// <summary>
        /// 获取或设置 用户代理
        /// </summary>
        public string UserAgent { get; set; }
        #endregion
        #region "获取或设置 HTTP请求方法"
        /// <summary>
        /// 获取或设置 HTTP请求方法
        /// </summary>
        public string Method { get; set; }
        #endregion
        #region "获取或设置 HTTP请求内容类型"
        /// <summary>
        /// 获取或设置 HTTP请求内容类型
        /// </summary>
        public string ContentType { get; set; }
        #endregion
        #region "获取或设置 HTTP请求查询字符串"
        /// <summary>
        /// 获取或设置 HTTP请求查询字符串
        /// </summary>
        public string QueryString { get; set; }
        #endregion
        #region "获取或设置 HTTP请求参数"
        /// <summary>
        /// 获取或设置 HTTP请求参数
        /// </summary>
        public string Arguments { get; set; }
        #endregion
        #region "获取或设置 操作结果类型"
        /// <summary>
        /// 获取或设置 操作结果类型
        /// </summary>
        public AjaxResultType ResultType { get; set; } = AjaxResultType.Success;
        #endregion
        #region "获取或设置 消息"
        /// <summary>
        /// 获取或设置 消息
        /// </summary>
        public string Message { get; set; }
        #endregion
        #region "获取或设置 结果数据"
        /// <summary>
        /// 获取或设置 结果数据
        /// </summary>
        public string ResultData { get; set; }
        #endregion
        #region "获取或设置 信息添加时间"
        /// <summary>
        /// 获取或设置 信息添加时间
        /// </summary>
        public DateTime CreatedTime { get; set; }
        #endregion
        #region "获取或设置 结束时间"
        /// <summary>
        /// 获取或设置 结束时间
        /// </summary>
        public DateTime EndedTime { get; set; }
        #endregion

        #region "获取或设置 审计数据信息集合"
        /// <summary>
        /// 获取或设置 审计数据信息集合
        /// </summary>
        public ICollection<AuditEntityEntry> EntityEntries { get; set; }
        #endregion

        #endregion

        #region "构造函数"
        #region "初始化一个审计操作信息 <see cref="AuditOperationEntry"/> 的新实例"
        /// <summary>
        /// 初始化一个审计操作信息 <see cref="AuditOperationEntry"/> 的新实例
        /// </summary>
        public AuditOperationEntry()
        {
            EntityEntries = new List<AuditEntityEntry>();
        }
        #endregion

        #endregion

    }

}
